"use strict";
cc._RF.push(module, '1b870h+RJJOmLuCDE/djjZl', 'UILevel');
// script/ui/UILevel.ts

"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var Constants_1 = require("../libs/Constants");
var GameData_1 = require("../libs/GameData");
var GameEvent_1 = require("../libs/GameEvent");
var HelperMgr_1 = require("../libs/HelperMgr");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var UILevel = /** @class */ (function (_super) {
    __extends(UILevel, _super);
    function UILevel() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.levels = null;
        return _this;
    }
    UILevel.prototype.onLoad = function () { };
    UILevel.prototype.onEnable = function () {
        GameEvent_1.GameEvent.on(Constants_1.default.StageEvent.RefreshLevel, this.refreshLevelList, this);
    };
    UILevel.prototype.start = function () {
        if (GameData_1.default.instance.gameMaxStage < GameData_1.default.instance.gameStage) {
            GameData_1.default.instance.gameMaxStage = GameData_1.default.instance.gameStage;
        }
        this.refreshLevelList();
    };
    UILevel.prototype.refreshLevelList = function () {
        for (var i = 0; i < this.levels.childrenCount; i++) {
            var select = this.levels.children[i].getChildByName("select");
            select.active = GameData_1.default.instance.gameStage == i + 1;
            var level = this.levels.children[i].getChildByName("level");
            level.getComponent(cc.Label).string = (i + 1).toString();
            level.color = i < GameData_1.default.instance.gameMaxStage ? cc.Color.BLUE : cc.Color.GRAY;
            var unlock = this.levels.children[i].getChildByName("unlock");
            unlock.active = i < GameData_1.default.instance.gameMaxStage;
            var locked = this.levels.children[i].getChildByName("locked");
            locked.active = i >= GameData_1.default.instance.gameMaxStage;
        }
    };
    UILevel.prototype.onLevel = function (event, customEventData) {
        var index = parseInt(customEventData);
        if (index == GameData_1.default.instance.gameMaxStage + 1) {
            HelperMgr_1.default.showUI(Constants_1.default.UIName.UIUnlockLevel);
        }
        else if (index <= GameData_1.default.instance.gameMaxStage) {
            GameData_1.default.instance.gameStage = index;
        }
        this.refreshLevelList();
    };
    UILevel.prototype.onClose = function () {
        this.node.removeFromParent();
        this.node.destroy();
    };
    UILevel.prototype.onDisable = function () {
        GameEvent_1.GameEvent.off(Constants_1.default.StageEvent.RefreshLevel, this.refreshLevelList, this);
    };
    __decorate([
        property(cc.Node)
    ], UILevel.prototype, "levels", void 0);
    UILevel = __decorate([
        ccclass
    ], UILevel);
    return UILevel;
}(cc.Component));
exports.default = UILevel;

cc._RF.pop();